In FIG. 1 there is illustrated generally at 30 a hypothetical example of a prior art machine readable bar code employing a horizontal arrangement of vertical bars 31 of variable width separated by variable width spaces 32. Such bar codes are widely employed on labels for products and files and on various documents and the like where the entry of datum such as a number or other information into a computer can be expedited and made error free by machine reading of the bar code. These bar codes are often produced on the labels, documents, etc. by using a computer to generate a bit or dot image of the code and transmitting this bit image along with pertinent control and other information to a printer which then prints the bar code on the label or document with possible other information. Many computer programs exist for generating such bar code bit images and operating printers to print the bar code.
One common method of reading these machine readable bar codes is to scan an infrared light beam horizontally across the bar code and then analyze a signal produced in a light sensor sensing reflection of the light beam. An alternate method is to project a image of the bar code onto a linear array of light sensors and to analyze the signals produced by the sensor array. In any of the methods of reading such bar codes, the widths of the bars relative to the spacings between bars is critical since these relative widths encode the datum represented by the bar code.
However there exists a problem in the prior art of producing these critical bar widths on different types of printers since different types of printers can produce different widths of bars. This problem is illustrated in FIGS. 2, 3, 4 and 5 in attempts to produce a bar code including a first bar 31 which is equal in width to the width of the following space 32. Each individual bar is formed by contiguous or overlapping rows and columns of bits. In one type of printer exemplified by laser printers and various other types of printers, the printer produces generally square contiguous bits such as illustrated by bits 35 in FIGS. 2 and 5. In another type of printer exemplified by ink jet printers and various other types of printers, the printer produces overlapping round bits such as illustrated by the bits 36 in FIGS. 3 and 4. From FIG. 2 it is seen that three columns of the contiguous dots 35 produce the correct ratio of white width WW2 to black width WB2 of one, i.e., WW2/WB2=1. However from FIG. 3 it is seen that three columns of 50% overlapping dots 36 intrude into the white space 32 to produce an incorrect ratio of white width WW3 to black width WB3 of one-half, i.e., WW3/WB3=1/2. From FIG. 4 it is seen that two columns of the 50% overlapping dots 36 produce the correct ratio of white width WW4 to black width WB4 of one, i.e., WW4/WB4=1. However from FIG. 5 it is seen that two columns of the contiguous dots 35 produce an incorrect ratio of white width WW5 to black width WB5 of two, i.e., WW5/WB5=2.
The prior art solution to this problem is to provide different bar width generators in the bar code image producing programs and to require the entry of the type of printer into the bar code producing program to select the appropriate bar width generator to print the correct bar widths. For the example of FIGS. 2-5, the prior art responds to the selection of the first type of printer to print one module width bars with three dot columns and one module width spaces with three dot wide spaces, and responds to the selection of the second type of printer to print one module width bars with two dot columns and one module width spaces with four dot wide spaces.